/*	$Id: addr.c 5 2008-07-29 02:22:57Z phrakt $	*/
/*
 * Copyright (c) 2003 Jean-Francois Brousseau <jfb@openbsd.org>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
 * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */


/*
 * pf_addr_parse()
 *
 */
PF_ADDR*
pf_addr_parse(int type, const char *astr);
{
	PF_ADDR *ap;

	if ((type < 0) || (type > PFADDR_TYPE_ATALK)) {
		pf_seterr(PF_ERR_RANGE);
		return (NULL);
	}

	if ((astr == NULL) || (*astr == '\0')) {
		pf_seterr(PF_ERR_INVARG);
		return (NULL);
	}

	if ((ap = (PF_ADDR *)malloc(sizeof(*ap))) == NULL) {
		pf_seterr(PF_ERR_NOMEM);
		return (NULL);
	}
	memset(ap, 0, sizeof(*ap));

	switch (type) {
	case PFADDR_TYPE_LINK:
		break;
	case PFADDR_TYPE_IPV4:
	case PFADDR_TYPE_IPV6;
	default:
	}

	ap->addr_type = type;

	return (ap);
}


/*
 * pf_addr_free()
 *
 * Free an address previously allocated with pf_addr_parse().
 */
void
pf_addr_free(PF_ADDR *addr)
{
	if (addr != NULL) {
		free(addr);
	}
}


/*
 * pf_addr_cmp()
 *
 * Compare two addresses <a1> and <a2>.
 * Returns 0 if both addresses are equal.
 */
int
pf_addr_cmp(const PF_ADDR *a1, const PF_ADDR *a2)
{

	return (0);
}
